var Module_Receive = function(options){

    this.module = options.module;
    this.controller = options.controller;
    this.urlPath = baseUrl + '/' + this.module + '/' + this.controller;
    this.initialize();
    this.sendding = false;
    this.obGridView = $("#jqxgrid");
}

Module_Receive.prototype.initialize = function(){
    var self = this;
    $("#refresh").unbind('click').click(function(){
        self.obGridView.jqxGrid('updatebounddata','filter');
    });
    $("#addrow").unbind('click').click(function(){self.add()});
    $("#editrow").unbind('click').click(function(){self.edit()});
    $("#deleterow").unbind('click').click(function(){self.delete()});

    $("#printrecord").unbind('click').click(function(){self.gettemplate()});
    $("#prints").unbind('click').click(function(){self.printrecord()});
    $("#process").unbind('click').click(function(){self.process()});
    $('#srecordtype').unbind('change').change(function(){
        self.changeRecordType($(this).val());
    })
    // Date
    $('#fromDate,#toDate').datepicker({
        changeMonth: true,
        gotoCurrent: true,
        maxDate:'today',
        changeYear: true,
        beforeShow:function(input) {
            $(input).css({
                "position": "relative",
                "z-index": 9999
            });
        }
    });
}
Module_Receive.prototype.initializeJqxGrid = function(){
    

}

$.extend(Module_Receive.prototype, {
    _eButton: function(){
        var self = this;
        $("#btnsave,#btnsave_next").unbind('click').click(function(){
            if($('#frmUpdate')[0].checkValidity()){
                self.save($(this).attr('action'));
                return false;
            }
        });
        $("#clsaveassign").unbind('click').click(function(){
            if($('#frmUpdate')[0].checkValidity()){
                self.saveassign();
                return false;
            }
        });
        
        // but_back_assignwait

    },
    _clearForm: function(ID){
        $('form#'+ID).find('input[type=text], textarea').val('');
    },
    _eForm: function(){
        $('form#frmUpdate [date="isdate"]').datepicker({
            changeMonth: true,
            gotoCurrent: true,
            // minDate:'today',
            changeYear: true
        });
        
        changedenghi('denghi');
        // changeProvince($('#Province'), 'District', 'Wards');
        $('#Province').trigger('change');
    },
    changeRecordType: function(recordtype){
        var data = [], htmls ='';
        for (var i = 0; i < HINH_THUC.length; i++) {
            if(HINH_THUC[i]['tthc'] == recordtype)
                data.push(HINH_THUC[i]);
        };
        htmls = '<option value="">--- Chọn hình thức ---</option>';
        for (var i = 0; i < data.length; i++) {            
            htmls += '<option value="'+data[i]['Code']+'" name="'+data[i]['Name']+'">'+data[i]['Name']+'</option>';
        };
        $('#sform').html(htmls);
    },
    open_export_file: function(data) {
        var htmls='';
        for (var i = 0; i < data.length; i++) {
            htmls +='<li><a href="'+data[i]['href']+'">'+data[i]['title']+'</a></li>';
        };
        $('#multi-print #files #list-file').html(htmls);
        $('div#multi-print').addClass('nq vY');
        $('div#multi-print').show();
        $('div#files').show();
    },
} );
function export_close() {
    $('div#multi-print').removeClass('vY nq');
    $('div#multi-print').hide();
    $('div#files').hide(); 
}
/*
 * Them moi
 * Creater : Truongdv
 */

Module_Receive.prototype.add = function(){
    
    var self = this
        , url = this.urlPath + '/add'
        , data = {
            recordtype: $('#srecordtype').val(),
            form: $('#sform').val(),
        };
    if (data.recordtype == '' || data.form == '') {
        jAlert('Bạn phải chọn Loại hồ sơ, Hình thức', 'Thông báo');
        return false;
    };
    $.ajax({
        url: url,
        type: "POST",
        data: data,
        success: function(string){
            $('#Tab-02').html(string);
            $('#Tab02').trigger('click');
            self._eButton();
            self._eForm();
            dLayout.hideLoadPage();
        },
        beforeSend: function(xhr) {
            dLayout.showLoadPage();
        },
        errors: function(){
            dLayout.hideLoadPage();
        }
    }); 
     return !history.pushState;
}

Module_Receive.prototype.edit = function(){
    var self = this
        ,url = this.urlPath + '/add'
        ,RecordID=''
        ,count = 0
        ,row
        ,data = [];
    var rows = self.obGridView.jqxGrid('selectedrowindexes');
    var selectedRecords = new Array();
    var list = '';
    for (var i = 0; i < rows.length; i++) {
        row = self.obGridView.jqxGrid('getrowdata', rows[i]);
        // list += rows[i]+'__';
        if(rows[i] >=0 && typeof(row) !='undefined'){
            count++;            
            RecordID = self.obGridView.jqxGrid('getrowdata', rows[i]).RecordID;
        }
    }
    if(count == 0){
        jAlert('Bạn chưa chọn một đối tượng nào để sửa!', 'Thông báo');
        return false;
    }
    if(count >1){
        jAlert('Bạn chỉ được chọn một đối tượng để sửa!', 'Thông báo');
        return false;
    }    
    $.ajax({
        url: url,
        type: "POST",
        data: {RecordID:RecordID},
        success: function(string){
            $('#Tab-02').html(string);
            $('#Tab02').trigger('click');
            $('#btnsave_next').hide();
            self._eButton();
            self._eForm();
            // $('#Code').attr('readonly',true); 
            dLayout.hideLoadPage();
        },
        beforeSend: function(xhr) {
            dLayout.showLoadPage();
        },
        errors: function(){
            dLayout.hideLoadPage();
        }
    }); 
     return !history.pushState;
}

Module_Receive.prototype.delete = function(){
    var self = this
        ,url = this.urlPath + '/delete'
        ,RecordIDs=''
        ,count = 0
        ,data = []
        ,row;
    var rows = self.obGridView.jqxGrid('selectedrowindexes')
    ,iTotal = rows.length;
    var selectedRecords = new Array();

    for (var i = 0; i < iTotal; i++) {
        row = self.obGridView.jqxGrid('getrowdata', rows[i]);
        if(row.RecordID){
            selectedRecords.push(rows[i]);
            count++;
            RecordIDs += row.RecordID + ',';
        }
    }
    RecordIDs = RecordIDs.substring(0,RecordIDs.length -1); 
    if(count == 0){
        jAlert('Bạn chưa chọn một đối tượng nào để xóa!', 'Thông báo');
        return false;
    }
    jConfirm('Bạn có chắc chắn muốn Xóa các hồ sơ này?', 'Xóa hồ sơ', function(r) {
        if(r){   
            $.ajax({
                url: url,
                type: "POST",
                data: {RecordIDs:RecordIDs},
                success: function(rsp){
                    if(rsp){
                        for (var i = 0; i < selectedRecords.length; i++) {
                            self.obGridView.jqxGrid('deleterow', selectedRecords[i]);
                        }
                        self.obGridView.jqxGrid('updatebounddata','filter');
                    } 
                    dLayout.hideLoadPage();
                },
                beforeSend: function(xhr) {
                    dLayout.showLoadPage();
                },
                errors: function(){
                    dLayout.hideLoadPage();
                }
            }); 
        }
    })
     return !history.pushState;
}
/*
 * Ghi lai
 * Creater : Truongdv
 */

Module_Receive.prototype.save = function(action){
    var self = this
        ,url = this.urlPath + '/save'
        ,xmlData = getDataXml($('form#frmUpdate'))
        ,data = $('form#frmUpdate').serializeArray();
    data.push({name:'XmlData',value:xmlData});
    $.ajax({
        url: url,
        type: "POST",
        data: data,
        // dataType: 'json',
        success: function(errors){
            errors = $.parseJSON(errors);
            document.getElementById('frmUpdate').reset();
            if(errors.length){
               jAlert($('label[for="Code"]').text() + ' ' + errors['0']['Code'], 'Thông báo');
            }else{
                if (action=='back') {
                    self._clearForm('frmUpdate');
                    $('#Tab01').trigger('click');
                    self.obGridView.jqxGrid('updatebounddata','filter');
                };
            }
            dLayout.hideLoadPage();
        },
        beforeSend: function(xhr) {
            dLayout.showLoadPage();
        },
        errors: function(){
            dLayout.hideLoadPage();
        }
    }); 
     return !history.pushState; // ngăn việc chuyển trang thực sự nếu trình duyệt có hỗ trợ pushState
}
Module_Receive.prototype.gettemplate = function(){
    var self = this
        ,url = this.urlPath + '/gettemplate'
        ,RecordID=''
        ,RecordTypeCode=''
        ,FormCode=''
        ,count = 0
        ,row
        ,data = [];
    var rows = self.obGridView.jqxGrid('selectedrowindexes');
    var selectedRecords = new Array();
    var list = '';
    for (var i = 0; i < rows.length; i++) {
        row = self.obGridView.jqxGrid('getrowdata', rows[i]);
        // list += rows[i]+'__';
        if(rows[i] >=0 && typeof(row) !='undefined'){
            count++;            
            RecordID = self.obGridView.jqxGrid('getrowdata', rows[i]).RecordID;
            RecordTypeCode = self.obGridView.jqxGrid('getrowdata', rows[i]).RecordTypeCode;
            FormCode = self.obGridView.jqxGrid('getrowdata', rows[i]).FormCode;
        }
    }
    if(count == 0){
        jAlert('Bạn chưa chọn một đối tượng nào để IN!', 'Thông báo');
        return false;
    }
    if(count >1){
        jAlert('Bạn chỉ được chọn một đối tượng để IN!', 'Thông báo');
        return false;
    }

    $.ajax({
        url: url,
        type: "POST",
        data: {
                RecordID: RecordID,
                RecordTypeCode: RecordTypeCode,
                FormCode: FormCode,
        },
        success: function(htmls){
            var dialog = $('#dialog-print');
            dialog.find('#templates').html(htmls);
            dialog.lightbox_me({centered: true});
            dLayout.hideLoadPage();

        },
        beforeSend: function(xhr) {
            // dLayout.open_load_data_process();
            dLayout.showLoadPage();
        },
        errors: function(){
            dLayout.hideLoadPage();
            // dLayout.close_load_data_process();
        }
    }); 
     return !history.pushState;
}

Module_Receive.prototype.printrecord = function(){
    var self = this
        ,url = this.urlPath + '/printrecord'
        ,RecordID = $('form#frmprint #RecordID').val()
        ,RecordType = $('form#frmprint #RecordType').val()
        ,Form = $('form#frmprint #Form').val()
        ,ListTemplate = ''
        ,Templates = []
        ,TemplatesName = []
        ,row
        ,data = [];
    var rows = self.obGridView.jqxGrid('selectedrowindexes');
    var selectedRecords = new Array();
    var list = '';
    $('form#frmprint input[name="check-item"]:checked').each(function(){
        Templates.push($(this).val());
        TemplatesName.push($('label[for="'+$(this).attr('id')+'"]').text());
    })
    if(Templates.length == 0){
        jAlert('Bạn chưa chọn một biểu mẫu nào để IN!', 'Thông báo');
        return false;
    }
    
    $.ajax({
        url: url,
        type: "POST",
        data: {
                RecordID: RecordID,
                Form: Form,
                RecordType: RecordType,
                ListTemplate: Templates.join(','),
                ListTemplateName: TemplatesName.join('!@#'),
        },
        success: function(data){
            data = $.parseJSON(data);
            dLayout.close_load_data_process();            
            self.open_export_file(data);
        },
        beforeSend: function(xhr) {
            dLayout.open_load_data_process();
            //dLayout.showLoadPage();
        },
        errors: function(){
            dLayout.hideLoadPage();
            dLayout.close_load_data_process();
        }
    }); 
     return !history.pushState;
}


function changedenghi(id){
    var element = $('.sub4_1,.sub4_2,.sub4_3');
    if($('[data_store="'+id+'"][value="04"]').is(':checked')){
        element.show();
    }else{
        element.hide();
    }

}
function changeProvince(obj,district,wards) {
    var htmls ='', htmls_xa =''
                , province = $(obj).val()
                ,v_district = $('#'+district).val()
                ,v_wards = $('#'+wards).val();
    htmls +='<option value="">--- Chọn quận/huyện ---</option>';
    for (var i = 0; i < QUAN_HUYEN.length; i++) {
        if (province == QUAN_HUYEN[i]['tinhthanh']) {
            htmls +='<option value="'+QUAN_HUYEN[i]['Code']+'" name="'+QUAN_HUYEN[i]['Name']+'">'+QUAN_HUYEN[i]['Name']+'</option>';
        };
    };
    $('#'+district).html(htmls);
    htmls_xa +='<option value="">--- Chọn phường/xã ---</option>';
    for (var i = 0; i < PHUONG_XA.length; i++) {
        if (province == PHUONG_XA[i]['tinhthanh']) {
            htmls_xa +='<option value="'+PHUONG_XA[i]['Code']+'" name="'+PHUONG_XA[i]['Name']+'">'+PHUONG_XA[i]['Name']+'</option>';
        };
    };
    $('#'+wards).html(htmls_xa);
    $('#'+district+' option[value="'+v_district+'"]').attr('selected',true);
    $('#'+wards+' option[value="'+v_wards+'"]').attr('selected',true);

}
function changeDistrict(obj,wards) {
    var htmls ='', htmls_xa ='', district = $(obj).val(), v_wards = $('#'+wards).val();
    htmls_xa +='<option value="">--- Chọn phường/xã ---</option>';
    for (var i = 0; i < PHUONG_XA.length; i++) {
        if (district == PHUONG_XA[i]['quanhuyen']) {
            htmls_xa +='<option value="'+PHUONG_XA[i]['Code']+'" name="'+PHUONG_XA[i]['Name']+'">'+PHUONG_XA[i]['Name']+'</option>';
        };
    };
    $('#'+wards).html(htmls_xa);
    $('#'+wards+' option[value="'+v_wards+'"]').attr('selected');
}

function updateAddress(province,district,wards,id) {
    var address = $('#'+wards + ' option:selected').text();
    address += ' - ' + $('#'+district + ' option:selected').text();
    address += ' - ' + $('#'+province + ' option:selected').text();
    $('#'+id).val(address);
}